import multiprocessing
import time


def down(q):
    '''下载数据'''
    # 模拟从网上下载下来的数据
    data = [11,22,33,44]
    
    # 向队列中写入数据
    for i in data:
        q.put(i)

    print('下载完毕')
        
    
def deal(q):
    '''处理数据'''
    save = list()   # 跟save = [] 一样，但比较好看出目的
    while True:
        data = q.get()
        save.append(data)
        if q.empty():
            print('处理完毕')
            print(save)
            time.sleep(5)
            break

def main():
    # 因为进程变量不共享，所以创建一个队列当成实参
    q = multiprocessing.Queue()  # 括号里面可以填数字代表最多存放几个
                                 # 不填的话，系统自动把你选择最大的
 
    # 创建两个进程
    p1 = multiprocessing.Process(target = down, args = (q,))
    p2 = multiprocessing.Process(target = deal, args = (q,))
    p1.start()
    p2.start()


if __name__ == '__main__':
    main()
